package regexp;

import regexp.utils.RegExpFind;

/**
 * @author DCSGO
 * @version 1.0
 * 非捕获分组
 * 非捕获是指并不能通过非0序号来访问匹配到的分组
 * 分组仅是指形式上是分组即使用 ()
 */
public class Regexp08 {
    public static void main(String[] args) {
        // (?:pattern)
        // "王福成(?:同学|会长|前辈)" 匹配以王福成开头结尾为同学或者会长或者前辈的字符串 等价于
        // 王福成同学|王福成会长|王福成前辈
        RegExpFind.printFind("王福成同学王福成会长王福成队员", "王福成(?:同学|会长|前辈)");
        /*
         * 王福成(?:同学|会长|前辈)匹配到：
         * 王福成同学 王福成会长
         */

        // (?=pattern)
        // Win(?=98|10|11) 匹配以98或10或11结尾的 Win
        RegExpFind.printFind("Win98Win10WinXpWin85Windows", "Win(?=98|10|11)");
        /*
         * Win(?=98|10|11)匹配到：
         * Win Win
         */

        //(?!pattern)
        // Win(?!98|10|11) 匹配不以98或10或11结尾的 Win
        RegExpFind.printFind("Win98Win10WinXpWin85Windows", "Win(?!98|10|11)");
        /*
         * Win(?!98|10|11)匹配到：
         * Win Win Win
         */
    }
}
